package com.hm.system.share.service.mongo.system;

import com.hm.common.model.PageInfo;
import com.hm.common.util.CommonDef.BaseInit.HttpInvokerEndpoing;
import com.hm.system.mongo.domain.def.SysUserDef;
import com.hm.system.mongo.vo.system.SysUserInfoVo;

/**
 * @author shishun.wang
 * @date 2016年5月12日 下午10:19:38
 * @version 1.0
 * @describe
 */
public interface SysUserInfoService {
	
	public String HTTP_INVOKER_EXPORT_CONTEXT = "/HttpInvokerEndpoing/system/SysUserInfoService/"
			+ HttpInvokerEndpoing.System.VERSION;
	
//	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_NEW, documentDef = DbSystemDef.SYS_USER_INFO)
	public String registerSysUserInfo(SysUserInfoVo sysUserInfoVo, String operationUser);

//	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_NEW, documentDef = DbSystemDef.SYS_USER_INFO)
	public String addSysUserInfo(SysUserInfoVo sysUserInfoVo, String operationUser);

//	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_UPDATE, documentDef = DbSystemDef.SYS_USER_INFO)
	public String updateSysUserInfo(SysUserInfoVo sysUserInfoVo, String operationUser);

	public SysUserInfoVo checkSysUserInfo(String name, String pwd);

//	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_DELETE, documentDef = DbSystemDef.SYS_USER_INFO)
	public String deleteSysUserInfo(SysUserInfoVo sysUserInfoVo, String operationUser);
	
	public void removeAll();

	public SysUserInfoVo getSysUserInfo(String id);

	public PageInfo<SysUserInfoVo> querySysUserInfo(SysUserDef userDef,String name, String mobile, Long startTime, Long endTime,
			Integer pageNumber, Integer pageSize);
	
	public String updatePassword(String userId,String oldPwd,String newPwd);

	public String updateHeadPortrait(String userId,String url);
	
	public String disableUser(String userId);
	
	public String forgetUserPwd(String name,String email,String mobile);
	
	public String initUserInfo();
}
